package ch6;

/**
 * 类的常见结构
 * @author admin
 *
 */

//在一个java文件中只能有一个类是public类型的，且类的名称必须与文件名相同（大小写敏感）
//在java类中，如果编写了静态代码块，代码块和构造器：在实例化对象时执行先后顺序：静态代码块->代码块->构造方法
public class Outter {

	//实例变量--实例属性--实例属性只跟对象相关
	private int id;
	private String name;
	
	//类变量--静态变量 -- 类属性是全局属性，与类相关
	static String man="男";
	static String woman="女";
	
	public Outter() {
		System.out.println("outter 构造方法");
		
	}
	{
		//在一个java类中，可以编写代码块
		//代码块是跟实例相关的，在执行构造方法前执行（当你new时）
		System.out.println("java 代码块");
		
	}
	
	static{
		//在java代码块中，可以编写静态代码块
		//静态代码块是跟类相关的，
		System.out.println("java 静态代码块");
	}
	
	public class Inner{
		//实例变量
		//类变量
		//常量
		//方法
		//代码块
		//内部类不能编写静态代码块
		{
			
		}
		public class Inner1{
			//内部类可以支持多级嵌套
		}
		
		//特殊的：内部类有一种情况叫匿名内部类
		//在使用new关键词实例化接口或抽象类时，可以编写成匿名内部类
		Runnable runnable=new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				
			}
		};
	}
	public class Inner3{
		//在一个类中可以嵌套多个内部类
	}
	
}
//在一个java文件中可以编写多个java类（外部类）
class Outter2{
	
}